Computers / Programming / Language References / Assembly / Intel 8080 / Intel 8080 Architecture

Overview

The 8080 is an 8 bit processor released by Intel in 1974. It has an 8-bit data bus and a 16-bit address bus allowing it to access 64 KiB of memory. Originally designed for use in calculators and other electronic devices it found widespread use in early microcomputers including the Altair 8080, IMSAI 8080 and others using the S-100 bus standard based on the Altair 8080.

CPU Registers

15
8
7
0
PSW A Flags
B B C
D D E
H H L
  SP
  PC

The 8080 has 6 general purpose 8-bit registers (B, C, D, E, H, and L) that can be referenced as three 16-bit register pairs (B, D, and H). The Accumulator (A) is an additional 8-bit register with some special capabilities such as being used to updated condition flags. Some instructions allow A and the condition flags to be treated as a register pair called the Program Status Word (PSW).

There are also two special 16-bit registers. The Program Counter (PC) register holds the address of the next instruction to be executed. The Stack Pointer (SP) holds the address of the last value added to the stack.

Condition Flags

The 8080 has 5 flags that are set by various instructions.

Carry/Borrow

Set if a carry out occurs from an addition instruction or a borrow occurs from a subtraction.

Sign

Set based on the most-significant bit of the value in the accumulator to indicate the sign of the result.

0 - Positive

1 - Negative.

Zero

Set if the value in the accumulator is zero.

Parity

Set based on the parity of the value in the accumulator.

0 - Odd Parity

1 - Event Parity

Auxiliary Carry

Set if a carry out occurs from bit 3 of the accumulator. Used for Binary Coded Decimal instructions which treat the accumulator as two 4 bit values.

Stack Operations

The stack location is set by loading a value into SP and it expands downwards in memory. Items are added to and removed from the stack in 16-bit chunks.